package cn.cs.service.impl;

import cn.cs.client.CsOrgClient;
import cn.cs.common.Constants;
import cn.cs.common.EmptyUtils;
import cn.cs.common.Page;
import cn.cs.pojo.CsOrg;
import cn.cs.service.CsOrgService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;
import java.util.Map;

@Service
public class CsOrgServiceImpl implements CsOrgService {

    @Resource
    private CsOrgClient orgClient;

    public CsOrg getCsOrgById(Long id) throws Exception {
        return orgClient.getCsOrgById(id);
    }

    public List<CsOrg> getCsOrgListByMap(Map<String, Object> param) throws Exception {
        return orgClient.getCsOrgListByMap(param);
    }

    public List<CsOrg> getOrgTree() throws Exception {
        return orgClient.getOrgTree();
    }



    public Integer getCsOrgCountByMap(Map<String, Object> param) throws Exception {
        return orgClient.getCsOrgCountByMap(param);
    }

    public Integer addCsOrg(CsOrg csOrg) throws Exception {
        return orgClient.addCsOrg(csOrg);
    }

    public Integer modifyCsOrg(CsOrg csOrg) throws Exception {
        return orgClient.modifyCsOrg(csOrg);
    }

    public Integer deleteCsOrgById(String id) throws Exception {
        return orgClient.deleteCsOrgById(id);
    }

    public Page<CsOrg> queryCsOrgPageByMap(Map<String, Object> param, Integer pageNo, Integer pageSize) throws Exception {
        Integer total = orgClient.getCsOrgCountByMap(param);
        pageNo = EmptyUtils.isEmpty(pageNo) ? Constants.DEFAULT_PAGE_NO : pageNo;
        pageSize = EmptyUtils.isEmpty(pageSize) ? Constants.DEFAULT_PAGE_SIZE : pageSize;
        Page page = new Page(pageNo, pageSize, total);
        param.put("beginPos", page.getBeginPos());
        param.put("pageSize", page.getPageSize());
        List<CsOrg> csOrgList = orgClient.getCsOrgListByMap(param);
        page.setRows(csOrgList);
        return page;
    }

    public Integer getMaxCode(String param)throws Exception{
        return orgClient.getMaxCode(param);
    }

}
